作者:0xmiddle,极客Web3
编辑:Faust,极客Web3
导语:在Web3生态中,跨链桥是一个非常重要的部分,它是打破链间孤岛、实现万链互联的关键设施。在过去,人们对跨链技术的探索和实践非常活跃,相关的跨链桥产品已经达到上百个,有的致力于构建一个统一的互操作层,有的则试图打通多链资产流通,愿景不尽相同,在技术方案上也各有取舍。
本文希望探讨的是:跨链桥的未来是怎样的?什么样的跨链协议更有前景?什么样的跨链应用更有可能获得大规模采用?开发者应该采用什么方式来构建跨链应用?下文中,作者将对跨链桥的发展趋势展开探讨,并先抛出三个核心论点:
·安全、高性能的新一代跨链桥会成为主流
·全链应用会成为新的dApp范式
·USDC 等资产发行方的官方桥会取代流动性互换桥
正文:跨链技术可以理解为是扩容的延伸,当一条链不足以承载所有交易请求时,那就让多链来承载,用跨链桥将他们连接起来。要理解跨链桥,首先要理清跨链桥要解决什么问题,以此分为不同的层次。
简单来看,跨链桥可以分出 协议层 和 应用层。协议层负责为跨链消息传递提供一个安全、有序的平台,而应用层则基于该平台构建 dApp 以面向用户,满足不同场景下的各类需求。
跨链桥在协议层的演化
协议层的核心是跨链消息传递的安全机制,也就是对跨链消息的验证方式。根据验证方式的不同,以及Vitalik等人的想法,业内曾将跨链桥划分为三种:基于哈希时间锁的原子交换、见证人验证 和 轻客户端验证。后来,Connext 创始人 Arjun Bhuptani 将跨链桥归纳为本地验证、外部验证和原生验证三种范式。
其中,本地验证仅适用于资产跨链,不能支持任意消息跨链,且用户体验并不友好(需要用户操作两次才能完成一笔交易)。一些最早采用此方案的跨链桥已经改弦更张,放弃了该路线。原生验证最安全,但成本太高,一方面是用户付出的Gas成本太高,甚至在某些情况下完全不具备经济可行性。另一方面,开发者的coding成本太高,为了接入不同的区块链,需要分别开发对应的轻客户端验证程序,工程量极大,采用范围也极其有限。最后,大多数跨链桥还是采用外部验证方案,用户的Gas成本和开发实现成本都相对较低,且支持任意消息跨链。但外部验证最被诟病的就是安全性,无论是今年暴雷的 Multichian ,还是此前被黑客盗取密钥的 RoninBridge(Axie Infinity官方桥) 和HorizenBridge(Harmony Chain官方桥),都在告诉我们,单纯的外部验证方案无法成为跨链桥的终局!跨链桥的安全隐患阻碍了跨链 dAPP 的发展,应用层在设计相应业务时变得十分谨慎,一来要尽可能避免与跨链互操作有关的环节,二来知名应用会倾向于自建跨链桥(AAVE、Maker、Compound 等头部 DeFi 项目都是如此)。可以想象,在一座治安很糟糕的城市,人们会选择尽量不出行,富人出行时则会自带保镖。但让人欣慰的是,新一代更安全的跨链桥正在快速成长起来,它们当中有 LayerZero、Chainlink CCIP 这样的双安全层桥;有将 ZK 技术和轻客户端结合的ZK桥(代表项目:Polyhedra、MAP Protocol、Way Network);有将经济博弈机制用于保护跨链安全的乐观验证桥(代表项目:Nomad、cBridge );还有将 ZK 和 TEE 技术结合的桥(代表项目:Bool Network)。总之,新一代跨链桥基础设施在不牺牲性能的基础上,实现了更高的安全性,为应用层在跨链互操作相关设计上提供了坚实保障。最初,所有 dApp 几乎都部署在以太坊上,因为没的选。但随着应用层生态的繁荣,以太坊不堪重负,这给了其他公链发展的机会,先后出现了各种 ETH Killer,以及侧链、 Layer2。从 dApp 的角度看,以太坊就像上海这样的超大城市,人口众多但资源紧张、寸土寸金,如果我的业务场景对吞吐量要求较高,但对互操作性要求不高,那就可以部署在一条不太拥挤的侧链上。比如一家印刷厂或种植园就没必要开在上海,而可以在郊区选址。dYdX出走以太坊的故事,想必大家都很熟悉了。同时,一个 dApp 可以在多链上部署,搞“连锁经营”,服务不同链上的用户,扩大规模和收入。例如,首个吸血鬼攻击的成功案例—— Sushiswap 就丧心病狂的在 28条链上做了部署,我们能想到名字的公链上,基本都有 Sushiswap。但这种多链的应用生态给用户带来了很差的体验:为了与不同链上的应用交互,还要理解不同链的区别,在多个链上注册地址,在每条链上都充值 gas 费,最后再把资产在不同链转来转去——天呐,太累了!更要命的是,很多 DeFi 协议都涉及到流动性的使用,你部署在多链上就得在多链上引导流动性,这会让流动性分散在不同链上,深度不共享,用户在交易时,会产生更大的price impact。对此,有人对以太坊 L2 的发展表示担忧,认为 L2 可能会分解掉以太坊的流动性,使其丧失竞争优势。也有研究者提出了 SLAMM 这样的统一流动性解决方案,但这个方案制造的问题比解决的问题还多,十分蹩脚,这里就不展开叙述了,感兴趣的朋友可以去找相关资料看看。真正核心的问题是:怎样才能把各个链上的资源和生态都聚合到一起,让用户不必感知“链”的存在?比如我有 1 个ETH,能否想在哪用就哪用,把自动兑换并支付不同链的Gas 这些环节隐藏掉?我想使用某个应用程序,能否在哪条链都可以用,而不用把资产跨过去?同时,项目方也不用再站队选链,不用在多链上重复部署,而可以部署在最适合的链上,然后不同链上的人都可以来用?应用层需要一种新的范式,把“链”这一层隐藏掉。有人模仿“账户抽象”的概念,创造了一个新词汇叫“链抽象”,就是这个意思。我们来看一个 LSD 项目是怎么做的?For example,Bifrost 自称是 全链 LSD 的开拓者,采用不同于其他 LSD 产品的架构设计。Bifrost 有一条自己的链 Bifrost Parachain,该链是 Polkadot 的平行链。Bifrost 的流动性质押模块仅部署在 Bifrost Parachain 上,其 LSD 资产—— vToken 的流动性也全在 Bifrost Parachain 上,但其他链可以通过远程调用的方式使用 Bifrost Parachain 上的流动性质押模块和流动性。如此一来:- 用户可以在其他链兑换 vToken,但背后触及的是 Bifrost 链的流动性;
- 用户可以在其他链为 Bifrost Parachain 上的 vToken/Token 池子提供流动性,并获得 LP Token;
- 用户可以在其他链销毁 LP Token,以赎回流动性。
这些操作,用户完全感觉不到背后的跨链传递过程,一切就像在本地完成一样,大家可以通过 Omni LSD dApp 去体验一下。Omni LSD dApp 目前支持在 Ethereum、Moonbeam、Moonriver、Astar 上远程铸造/赎回/兑换 vToken。如果没有上述功能,用户如果想在 Moonbeam 上铸造 vDOT,必须手动操作三步,很麻烦!① 把DOT从Moonbeam跨链转入Bifrost而通过远程调用功能,用户的资产看似无需离开 Moonbeam 链,即可完成上述三个步骤, 直接在 Moonbeam 链上将 DOT 转换为 vDOT 。也就是说,整个过程,用户就像在使用 Moonbeam 本地应用一样体验 Bifrost 链上的服务。听起来很酷吧!可这怎么实现呢?其实也不复杂,Bifrost 在其他链上部署了一个远程模块(remote modular),用于接收用户请求,并跨链传递给 Bifrost Parachain,流动性质押模块处理完成后,再将结果跨链返回远程模块。用户只需在远程链上发起请求,后续的过程,会由 Relayers 触发并完成。Bifrost 将其架构称为“全链架构”,与其他 LSD 协议的多链部署策略的对比如下图:之所以这么浓墨重彩的讲 Bifrost 的架构,是为了让大家彻底理解 Bifrost 所说的“全链架构”是怎么回事,Bifrost 的架构所代表的其实是一种全新的通用范式。Chainlink 在其博客文章《跨链智能合约》一文中,曾将这种架构描述为“总店+分店”模型。应用程序的主要逻辑放在一条链上,就像一个“总店”,然后其他链上提供一个远程访问模块,以实现与终端用户之间的交互(获取用户输入,输出用户想要的结果),就像一个个“门店”。门店获取用户的输入后,将该输入跨链传递到总店,总店进行处理后输入结果,再将该结果跨链传递到门店,向用户输出。某些情况下,总店的不同模块可能被拆分到不同链上,它们共同构成一个虚拟的总店。该架构下,程序的主要逻辑都在总店,应用程序拥有一个统一的状态记录,流动性割裂和用户体验割裂的问题都得以解决。此外,该架构的应用还具有更好的跨链可组合性,其他链上的应用程序也可以像其他链上的用户一样,远程访问总店的功能。尽管 Bifrost 将该结构称为“全链架构”,作者个人并不是很喜欢“全链”,也就是 Omni-Chain 这个词,因为这是个含义不明的词汇,最初 LayerZero 发明这个词汇,用来彰显它那无可比拟的可扩展性,但 LayerZero 也未曾完全说明白究竟什么是“全链”。难道是“全部的链”?必然不是,没有什么应用跑在全部的链上。作者有个做游戏的项目方说自己做的是全链游戏,细问才知道,这个“全链”是指“代码全部都上链”,和一些 Web3 游戏仅把资产数据上链区别开,和 LayerZero 说的“全链”风马牛不相及。我认为更合适的表述还是“链抽象”,Chain-Abstraction,或者 Chain-Agnostic(与链无关),二者都可以表达一种“用户无需关心链”的状态。最后我们要谈的是跨链领域的另一个重要命题——流动性。首先我们搞清楚它是哪个层次的问题。流动性不属于协议层,因为它无关乎跨链消息安全有序传递的问题,它属于应用层,而且是一类特殊的应用—— SwapBridge。跨链应用中最大的一个类目必然是资产桥,资产桥又分为WrapBridge 和SwapBridge,前者通过lock-mint/burn-unlock逻辑帮助用户实现资产传递,也称为“资产传递桥”,SwapBridge 则通过在多个链上储备流动性来帮助用户实现原生资产的直接互换,也称“流动性互换桥”。其中,SwapBridge 的应用范围最广,项目众多,不同的 SwapBridge 项目本质上竞争的是流动性效率,谁能够用最小的流动性支出为用户提供最大的深度。换个角度说,流动性正是 SwaqBridge 提供的服务核心,大家比拼的是谁更有成本优势,这和普遍意义的商业竞争是同一个逻辑。这里大家需要明白的是,补贴策略创造的成本优势是不可持续的,你必须在流动性机制设计层面有优势才行。SwapBridge 赛道上的诸多项目,包括Stargate、Hashflow、Orbiter、Symbiosis、Synapse、Thorswap 等,在提高流动性效率方面堪称八仙过海各显神通,也产生了不少可圈可点的创新,作者之前写过一篇文章对此进行盘点:《 万字报告:盘点25座流动性互换跨链桥及其流动性机制 》但 USDC 发行方 Circle 推出的 CCTP 让众多 SwapBridge 的努力变的毫无意义,换句话说,CCTP 干掉了 SwapBridge。这种感觉就像三体文明花了数亿年、200 多轮文明去求解三体问题,但最终 Circle 告诉你:三体问题无解!比如,在资产的跨链兑换中,USDC是最广泛采用的媒介资产,也就是说,当你需要把 X 链上的 A 资产换成 Y 链上的 B 资产时,往往需要在 X 链将 A 先换成 USDC,再将 X 链上的 USDC 换成 Y 链上的 USDC,然后再在 Y 链把 USDC 换成资产 B。因此,SwapBridge 在各条链上储备的流动性的主要形式就是 USDC。然后 CCTP 可以支持 X 链上的 USDC 直接通过 burn-mint 逻辑换成 Y 链上的原生 USDC,无需流动性储备。换句话说,CCTP 完全没有流动性成本,用户端体验到的过桥费可以做到极低。也许你会说,除了 USDC,常用的媒介资产不还有 USDT 吗?且不说在 DEX 领域,USDT 的使用率远低于 USDC,你就不怕 Tether 也学 Circle,给你来这么一出么?所以,我想告诉各位的是:SwapBridge 已死,资产发行方的官方桥会在跨链流动性方面具有不可挑战的成本优势。至于有的 SwapBridge 转而集成 CCTP,那就是聚合器的逻辑了。跨链桥协议层正在变的更加安全可靠,多签桥的时代正在结束。过去,跨链给人造成的不安全印象将随着新一代跨链基础设施的普及而消弭;跨链应用正在通过范式迭代,大幅改善用户体验,“链抽象”的意义不亚于“账户抽象”,正在给 Web3 的 Mass Adoption 创造条件;Circle推出的CCTP则结束了 SwapBridge 流动性竞争的战国时代,让我们看到了跨链资产兑换的终局。总之,跨链领域正在处于剧变之中!看明白前路,才能走的更加笃定。